1. Technical Field
This application generally relates to drivers, and more particularly to techniques used for performing driver upgrades.
2. Description of Related Art
Computer systems may include different resources used by one or more host processors. Resources and host processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as those included in the data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more host processors and provide storage services to each host processor. Multiple data storage systems from one or more different vendors may be connected and may provide common data storage for one or more host processors in a computer system.
A host processor may perform a variety of data processing tasks and operations using the data storage system. For example, a host processor may perform basic system I/O operations in connection with data requests, such as data read and write operations.
Host processor systems may store and retrieve data using a storage device containing a plurality of host interface units, disk drives, and disk interface units. Such storage devices and data storage systems are provided, for example, by EMC Corporation of Hopkinton, Mass. The host systems access the storage device through a plurality of channels provided therewith. Host systems provide data and access control information through the channels to the storage device and storage device provides data to the host systems also through the channels. The host systems do not address the disk drives of the storage device directly, but rather, access what appears to the host systems as a plurality of logical disk units, logical devices or logical volumes. The logical disk units may or may not correspond to the actual physical disk drives. Allowing multiple host systems to access the single storage device unit allows the host systems to share data stored therein.
An application may execute on a host where the application performs I/O (input/output) operations. Device drivers are used in connection with performing such I/O operations. When performing an upgrade to the driver, the applications which utilize the driver may have to be stopped and then restarted. Additionally, the system upon which the upgraded driver is installed may also have to be rebooted to use the upgraded driver. Requiring a reboot and stopping/restarting of the applications to use the upgraded driver may be unacceptable or undesirable in terms of impact on system operation.
The host may be able to transmit the data operation to the data storage system over any one or more different paths or multiple paths. One such driver may include multipathing functionality for managing use of such multiple I/O paths to a data storage system from the host upon which the application is executing. When a new multipathing driver upgrade, or more generally any driver upgrade, is needed, it may be necessary to install the upgraded driver, perform a reboot, and stop and restart the applications that use the driver functionality in order to have the applications use the upgraded driver.